package com.itheima.Test;

import java.util.Arrays;
import java.util.Comparator;

public class ArraysTest2 {
    public static void main(String[] args) {
        //要求1:属性有姓名、年龄、身高。
        //要求2:按照年龄的大小进行排序，年龄一样，按照身高排序，身高一样按照姓名的字母进行排序
        //姓名中不要有中文或特殊字符，会涉及到后面的知识

        //定义三个女友
        GirlfriendForArraysTest2 gf1 = new GirlfriendForArraysTest2("小花", 19, 1.70);
        GirlfriendForArraysTest2 gf2 = new GirlfriendForArraysTest2("小红", 18, 1.72);
        GirlfriendForArraysTest2 gf3 = new GirlfriendForArraysTest2("小翠", 19, 1.78);
        GirlfriendForArraysTest2 gf4 = new GirlfriendForArraysTest2("小", 19, 1.78);

        //定义一个女朋友数组
        GirlfriendForArraysTest2[] gfs ={gf1,gf2,gf3,gf4};

        //用Arrays中的sort方法进行排序
        Arrays.sort(gfs, new Comparator<GirlfriendForArraysTest2>() {
            @Override
            public int compare(GirlfriendForArraysTest2 o1, GirlfriendForArraysTest2 o2) {
                //按照年龄的大小进行排序，年龄一样，按照身高排序，身高一样按照姓名的字母进行排序
                double i = o1.getAge() - o2.getAge();
                i =  i == 0 ? o1.getHeight() - o2.getHeight() : i;
                i =  i == 0 ? o1.getName().compareTo(o2.getName()) : i;

                if (i > 0) {
                    return 1;
                } else if (i < 0) {
                    return -1;
                }else{
                    return 0;
                }
            }
        });

        System.out.println(Arrays.toString(gfs));

    }
}

